In classic client-server computing, a broadly distributed application may partition tasks, workload and/or application processes between at least two devices. For example, the distributed application may be partitioned between a service requester, known as a client, and a service provider, known as a server. The client may request the services provided by the server over a network. For example, the client may request a computing service or an email service provided by the server over a network such as the Internet.
During an upgrade of a distributed application in a client-server computing environment, application code on a client device, i.e. client software, and/or application code on a server device, i.e. server software, may need to be configured. However, configuring the upgraded client software on the client device may result in many problems. For example, a user of the client device may ignore a notification from the server requiring configuration of the client software and continue to try to use the client software that has not been upgraded. Further, the user of the client device may try to use the upgraded client software without having configured the upgraded client software. Moreover, even if the user of the client device tries to configure the upgraded client software, errors may be introduced during the configuration, causing the upgraded client software to point to non-existent server software.